Структура аудио mpeg-файла
-------------------------------------------------------------------------
Файл
Файл состоит из одного или нескольких фреймов. Каждый фрейм содержит "заголовок фрейма" и "данные фрейма".
--------------------------------------------------------------------------
Длина фрейма
Длина фрейма зависит от формата данного mpeg-файла и может быть разной у разных фреймов. Фрейм заканчивается перед следующим синхронизирующим заголовком (см. заголовок фрейма).
--------------------------------------------------------------------------
Заголовок фрейма
(
англ. frame header)Заголовок фрейма аудио mpeg-файла состоит из 4 байт, которые располагаются в начале фрейма. Заголовки не обязательно должны быть одними и теми же у всех фреймов (т.е. битовое заполнение заголовков может меняться с каждым фреймом).
Заголовок фрейма имеет следующий вид:
БАЙТЫ |
0 |
1 |
2 |
3 |
Двоич. Значение |
1111 1111 |
1111 abbc |
dddd eefg |
hhjj kmpp |
где:
1 - синхронизирующий заголовок (англ.
sync header)a - версия
b - layer
c
- защита от ошибокd - индекс битрейта (ширины потока)
e - индекс частоты (англ.
sample rate index)f - заполнение (англ. рadding)
g - расширение (англ. еxtension)
h - канальный режим (англ.
channel mode)j - режим расширения (англ.
mode extension)k - охрана авторских прав
m - оригинал
p - резкость (англ.
emphasis)
Ниже перечислены возможные значения перечисленных параметров.
--------------------------------------------------------------------------
1 - синхронизирующий заголовок
должен быть вида:
11111111 1111xxxx ($fffx)
--------------------------------------------------------------------------
a - версия
0 = mpg-ii
1 = mpg-i
--------------------------------------------------------------------------
b - layer
0 = layer-1
3 = layer-2
2 = layer-3
--------------------------------------------------------------------------
c - защита от ошибок
0 = вкл
1 = выкл
--------------------------------------------------------------------------
d - битрейт
mpg-i
ИНДЕКС (hex) |
bps@38kHz |
bps@44.1kHz |
bps@48kHz |
$0 |
0 |
0 |
0 |
$1 |
32 |
32 |
32 |
$2 |
64 |
48 |
40 |
$3 |
96 |
56 |
48 |
$4 |
128 |
64 |
56 |
$5 |
160 |
80 |
64 |
$6 |
192 |
96 |
80 |
$7 |
224 |
112 |
96 |
$8 |
256 |
128 |
112 |
$9 |
288 |
160 |
128 |
$a |
320 |
192 |
160 |
$b |
352 |
224 |
192 |
$c |
384 |
256 |
224 |
$d |
416 |
320 |
256 |
$e |
448 |
384 |
320 |
mpg-ii
ИНДЕКС (hex) |
bps@16kHz |
bps@22kHz |
bps@24kHz |
$0 |
0 |
0 |
0 |
$1 |
32 |
8 |
8 |
$2 |
48 |
16 |
16 |
$3 |
56 |
24 |
24 |
$4 |
64 |
32 |
32 |
$5 |
80 |
40 |
40 |
$6 |
96 |
48 |
48 |
$7 |
112 |
56 |
56 |
$8 |
128 |
64 |
64 |
$9 |
144 |
80 |
80 |
$a |
160 |
96 |
96 |
$b |
176 |
112 |
112 |
$c |
192 |
128 |
128 |
$d |
224 |
144 |
144 |
$e |
256 |
160 |
160 |
--------------------------------------------------------------------------
e - частота (sample rate)
ИНДЕКС |
Версия mpg-i |
Версия mpg-ii |
0 |
44.1kHz |
22kHz |
1 |
48kHz |
24kHz |
2 |
38kHz |
16kHz |
--------------------------------------------------------------------------
f - заполнение (padding)
1 = имеются неиспользованные биты (требуется заполнение)
0 = все биты фрейма используются
--------------------------------------------------------------------------
g - расширение (extension)
0 = нет
1 = приватное (англ.
private)--------------------------------------------------------------------------
h - канальный режим
0 = стерео
1 = joint stereo
2 = dual channel (двойной канал)
3 = моно
--------------------------------------------------------------------------
j = режим расширения (mode extension)
При кодировании в режиме joint stereo, этот параметр определяет, какой полосой частот оно ограничивается.
ИНДЕКС |
Layer-1&2 |
Layer-3 |
0 |
4 |
0 |
1 |
8 |
4 |
2 |
12 |
8 |
3 |
16 |
16 |
--------------------------------------------------------------------------
k - охрана авторских прав
0 = нет
1 = да
--------------------------------------------------------------------------
m - оригинал
0 = нет
1 = да
--------------------------------------------------------------------------
p - резкость
0 = нет
1 = 50/15 микросекунд
3 = CITT j.17
--------------------------------------------------------------------------